const http = require("http");

const server = http.createServer((req, res) => {
  // 客户端发请求到我这个服务上时，这个回调函数就会被执行

  // 处理 /favicon.ico 这个请求，处理掉
  if (req.url === "/favicon.ico") return;

  console.log("req.url ===: ", req.url);
  // req.url 中 如果有中文，会自动转义。需要使用 decodeURIComponent 转回去，不然中文会有问题
  let url = req.url;
  url = decodeURIComponent(url);
  console.log("转回来之后的 url ===: ", url);

  // /?name=zhangsan          => { name: zhangsan }
  // /?name=zhangsan&age=18   => { name: zhangsan, age: 18 }
  const obj = parse(url);
  console.log(obj);

  res.writeHead(200, { "Content-Type": "text/html;charset=utf-8" });
  // Content-Type: text/html;charset=utf-8
  res.end(`hello - ${obj.name}`);
});

server.listen(3000, function () {
  // 当服务启动成功之后，这个回调会执行
  console.log("服务启动成功");
});

function parse(str) {
  if (str.indexOf("?") === -1) return {};

  const str1 = str.split("?")[1]; // name=zhangsan&age=18

  const arr = str1.split("&"); // ['name=zhangsan', 'age=18']
  const result = {};

  for (let i = 0; i < arr.length; i++) {
    const item = arr[i]; // name=zhangsan    age=18

    const temp = item.split("="); // ['name', 'zhangsan']  ['age', '18']

    result[temp[0]] = temp[1];
  }

  return result;
}
